<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                template="./../../resources/estoque.xhtml"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://xmlns.jcp.org/jsf/core">

    <ui:define name="content">
        <h:outputStylesheet library="css" name="estilo.css" />
        <h:outputScript library="js" name="javaScript.js" />
        <p:separator />
        <div class="pagina">
            Lançamento de Entrada de Produto
        </div>        
        <p:separator />        
        <h:form id="frmPesForn">
            <p:fieldset legend="Pesquisa Fornecedor" rendered="#{!mbEntrada.edit}">
                <h:panelGrid columns="3">                   
                    <h:outputLabel value="Fornecedor.:" styleClass="lb" style="float: left;"/>
                    <h:inputText value="#{mbFornecedor.pesquisaFornecedor}" onkeyup="this.value = this.value.toUpperCase()" 
                                 styleClass="tx" style="color: #D20005;" size="40">                
                    </h:inputText>                   
                    <p:commandLink action="#{mbFornecedor.pesquisarFornecedor}" update=":forn" title="Click para realizar a pesquisa" ajax="false">
                        <h:graphicImage library="img" name="lupa2.bmp" />
                    </p:commandLink>
                </h:panelGrid>
            </p:fieldset>
        </h:form>
        <h:form id="cabEntrada">
            <p:growl />
            <p:fieldset legend="Cabeçalho de Entrada">
                <h:inputHidden value="#{mbEntrada.cabEstoque.idCabEstoque}" />
                <h:panelGrid columns="4">
                    <h:outputLabel value="Fornecedor.:" styleClass="lb" />
                    <h:selectOneMenu id="forn" value="#{mbEntrada.cabEstoque.fornecedor.idFornecedor}" styleClass="tx" style="width: 250px;" readonly="#{mbEntrada.edit}" required="true" requiredMessage="Fornecedor é Obrigatório">
                        <f:selectItem itemLabel="Selecione um fornecedor" />
                        <f:selectItems value="#{mbFornecedor.fornecedores}" var="f" itemValue="#{f.idFornecedor}" itemLabel="#{f.nomeFantasia}" />
                    </h:selectOneMenu>
                    <h:outputLabel value="Data NF.:" styleClass="lb" />
                    <p:calendar value="#{mbEntrada.cabEstoque.dataNF}" style="width: 20px;" readonly="#{mbEntrada.edit}" />
                </h:panelGrid>                
                <h:panelGrid columns="6">
                    <h:outputLabel value="data de entrada.:" styleClass="lb" />
                    <p:calendar value="#{mbEntrada.cabEstoque.dataMovimentacao}" style="width: 20px;" readonly="#{mbEntrada.edit}" />
                    <h:outputLabel value="Nº Doc.:" styleClass="lb"/>
                    <h:inputText value="#{mbEntrada.cabEstoque.numDocumento}" size="10" styleClass="tx" readonly="#{mbEntrada.edit}"  />
                    <h:outputLabel value="Valor Total.:" styleClass="lb"/>
                    <h:inputText value="#{mbEntrada.cabEstoque.vlrTotal}" size="10" styleClass="tx" readonly="#{mbEntrada.edit}">
                        <f:convertNumber type="number" minFractionDigits="3" />
                    </h:inputText>         
                </h:panelGrid>
                <h:panelGrid columns="4">
                    <p:commandButton value="Novo" ajax="false" actionListener="#{mbEntrada.novoCabecalho}" update="@form" disabled="#{!mbEntrada.edit}" />
                    <p:commandButton value="Editar" ajax="false" actionListener="#{mbEntrada.habilitarEdicaiCabecalho}" update="@form" disabled="#{!mbEntrada.edit}" />
                    <p:commandButton value="Gravar" ajax="false" actionListener="#{mbEntrada.salvarCabecalho}" update="@form :cabEstoque" disabled="#{mbEntrada.edit}" />
                    <p:commandButton value="Atualizar" actionListener="#{mbEntrada.atualizarCabecalho}" style="padding-right: 5px" update=":cabEstoque" ajax="false" immediate="true"/>
                </h:panelGrid>
            </p:fieldset>
        </h:form>
        <h:form id="cabEstoque" rendered="#{mbEntrada.cabEstoques.size() > 0}">
            <p:dataTable value="#{mbEntrada.cabEstoques}" var="c">
                <p:column headerText="Código">
                    <h:outputText value="#{c.idCabEstoque}" />
                </p:column>
                <p:column headerText="Fornecedor">
                    <h:outputText value="#{c.fornecedor.nomeFantasia}" />
                </p:column>
                <p:column headerText="DT NF">
                    <h:outputText value="#{c.dataNF}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </p:column>
                <p:column headerText="DT Entrada">
                    <h:outputText value="#{c.dataMovimentacao}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </p:column>
                <p:column headerText="Op.">
                    <p:commandLink value="Lançar" action="#{mbEntrada.lancarProdutos(c.idCabEstoque)}" ajax="false" update=":cabEntrada" />
                </p:column>
            </p:dataTable>
        </h:form>
        <h:form id="selProduto" rendered="#{mbEntrada.cabEstoques.size() > 0}">
            <h:inputHidden value="#{mbEntrada.entrada.idEntrada}" />
            <h:panelGrid columns="10">
                <h:outputLabel for="produto" value="Produto.:" styleClass="lb" />
                <h:selectOneMenu id="produto" value="#{mbEntrada.entrada.produto.idProduto}" styleClass="tx" required="true" requiredMessage="Produto e obrigatório">
                    <f:selectItem itemLabel="Selecione um produto" />
                    <f:selectItems value="#{mbEntrada.produtos}" var="p" itemLabel="#{p.descricao}" itemValue="#{p.idProduto}"/>
                </h:selectOneMenu>
                <h:outputLabel for="validade" value="Validade.:" styleClass="lb" />
                <h:inputText id="validade" value="#{mbEntrada.entrada.validade}" size="20" styleClass="tx">
                    <f:convertDateTime pattern="dd/MM/yyyy" timeZone="America/Sao_Paulo" />
                </h:inputText>
                <h:outputLabel for="qtde" value="Qtde.:" styleClass="lb" />
                <h:inputText id="qtde" value="#{mbEntrada.entrada.quantidade}" size="10" styleClass="tx" requiredMessage="Digite somente Numeros">
                    <f:convertNumber type="number" />
                </h:inputText> 
                <h:outputLabel for="vlrUni" value="Vlr Uni.:" styleClass="lb" />                
                <h:inputText id="vlrUni" value="#{mbEntrada.entrada.valor}" size="10" styleClass="tx" requiredMessage="Digite somente Numeros">
                    <f:convertNumber type="number" minFractionDigits="2" />
                </h:inputText>
                <p:commandButton value="Adicionar" actionListener="#{mbEntrada.adicionarProduto}" ajax="false" update="@form :proNF :hProd">
                    <p:ajax update=":proNF" />
                </p:commandButton>
                <p:commandButton value="Atualizar" actionListener="#{mbEntrada.atualizarLista}" style="padding-right: 5px" update=":proNF" ajax="false" immediate="true"/>
            </h:panelGrid>
        </h:form>

        <h:form id="proNF" rendered="#{mbEntrada.entradas.size() > 0}">           
            <p:dataTable value="#{mbEntrada.entradas}" var="e">
                <p:column headerText="Produto" id="hProd">
                    <h:outputText value="#{e.produto.descricao}" />
                </p:column>
                <p:column headerText="Validade">
                    <h:outputText value="#{e.validade}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </p:column>
                <p:column headerText="Qtde">
                    <h:outputText value="#{e.quantidade}" />
                </p:column>
                <p:column headerText="Vlr Uni">
                    <h:outputText value="#{e.valor}">
                        <f:convertNumber type="currency" />
                    </h:outputText>
                </p:column>
                <p:column headerText="Sub Total">
                    <h:outputText value="#{e.valor * e.quantidade}">
                        <f:convertNumber type="currency" />
                    </h:outputText>
                </p:column>
                <p:column headerText="Excluir">
                    <p:commandLink value="Excluir" action="#{mbEntrada.excluirProduto(e)}" ajax="false" update="@form" />
                </p:column>                
                <f:facet name="footer">
                    <h:outputLabel value="Tota = " />
                    <h:outputText value="#{mbEntrada.totalNF}">
                        <f:convertNumber type="number" minFractionDigits="3" />                        
                    </h:outputText>                                       
                </f:facet>
            </p:dataTable>
            <h:commandButton value="Finalizar Entrada" action="#{mbEntrada.finalizarEntrada}" style="padding-right: 5px" />                           
        </h:form>
    </ui:define>
</ui:composition>
